package com.gxl.butt.service;

import com.alibaba.fastjson.JSONObject;
import com.gxl.butt.dto.bo.Topic;
import com.gxl.butt.exception.CException;

import java.util.concurrent.ExecutionException;

/**
 * Created by guoxiaolin on 2018/7/13.
 */
public interface IkafkaOperatorService {

    /**
     *
     * 发送消息
     * @param topic
     * @return
     */
    JSONObject sendMes(Topic topic);

    /**
     * 创建topic
     * @param topic
     * @return
     * @throws ExecutionException
     * @throws InterruptedException
     */
    JSONObject createTopic(Topic topic) throws ExecutionException, InterruptedException;

    /**
     *
     * 获取topic列表
     * @param userid
     * @return
     */
    JSONObject getTopicList(Integer pageNo,Integer pageSize,Long userid);

    /**
     * 获取topic信息
     * @param tid
     * @return
     */
    JSONObject getTopicInfo(Long tid);


    /**获取用户日报表", notes="用户每日消息数量，只查询最新30日**/
    JSONObject getCountOfUser(Long userid);

    /**获取用户日报表，用户每日消息数量，只查询最新30日**/
    JSONObject getReportInDay(Long userid);

    /**获取用户月报表 ，用户每月消息数量，只查询最新12个月**/
    JSONObject getReportInMouth(Long userid);

    /**获取消息总数**/
    JSONObject getSumOfMessage();

    /**
     * 获取topic列表，by openid
     * @param openid
     * @return
     */
    JSONObject getTopicsbyopenid(Integer pageNo,Integer rowCount,String openid);

    /**
     * 更新topic的备注
     * @param remark
     * @param openid
     * @return
     */
    JSONObject updataRemark(String remark,String topicid, String openid);

    /**
     * 更新topic的运行状态
     * @return
     */
    JSONObject updateTopicStatus(Long topicid ,Integer topicstatus);

    /**
     * 获取报表数据：近七日消息量曲线图
     * @param topicid
     * @return
     */
    JSONObject getTopicReportInWeek(Long topicid);
}
